package org.example;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.function.Consumer;

public class Iterator_Demo1 {
    public static void main(String[] args) {
        Collection<String> coll = new ArrayList<String>();
        coll.add("Girlfriend1");
        coll.add("Girlfriend2");
        coll.add("Girlfriend3");

        //获取迭代对象 类似一个箭头 默认指向集合0索引
        Iterator<String> it = coll.iterator();
        //利用循环去获取集合每一元素  迭代器遍历完毕，指针不会复位
        while (it.hasNext()) {
            //it.next() 指向元素并返回元素 再移动指针 只能使用一次next() 没有元素还强行获取就会NoSuchElementException
            String str = it.next();
            //删除元素  只能用迭代器方法删除 不能用集合方式删除
            if (str.equals("Girlfriend2")) {
                it.remove();
            }
        }
        System.out.println(coll);
        System.out.println("======1");
        //增强for循环  str是第三方变量  就算是str=“qqq” 集合元素还是不变
        for (String str : coll) {
            System.out.println(str);
        }

        //匿名内部类       接口
        coll.forEach(new Consumer<String>() {
            @Override
            public void accept(String s) {
                System.out.println(s);
            }
        });
        //简写模式 （参数）->{方法体}
        coll.forEach((String s)-> {System.out.println(s);});

        //lambda表达式
        coll.forEach(str-> System.out.println(str));








    }
}
